package com.wujunshen.dumpling.database.metadata;

import java.io.Serializable;

/**
 * 表列接口
 *
 * @author frankwoo
 */
public interface IColumn extends Serializable {
  /**
   * 获取表名
   *
   * @return {@link String}
   */
  String getTableName();

  /**
   * Gets is nullable.
   *
   * @return {@link String}
   */
  String getIsNullable();

  /**
   * 表中的列的索引（从 1 开始）
   *
   * @return {@link String}
   */
  String getOrdinalPosition();

  /**
   * 名称
   *
   * @return {@link String}
   */
  String getColumnName();

  /**
   * 列的数据类型名称
   *
   * @return {@link String}
   */
  String getTypeName();

  /**
   * 小数位
   *
   * @return {@link String}
   */
  String getDecimalDigits();

  /**
   * 是否主键
   *
   * @return {@link Boolean}
   */
  String getPrimaryKey();

  /**
   * 默认值
   *
   * @return {@link String}
   */
  String getColumnDef();

  /**
   * 说明
   *
   * @return {@link String}
   */
  String getRemarks();

  /**
   * 获取列类型
   *
   * @return {@link String}
   */
  String getColumnType();

  /**
   * 获取列长度
   *
   * @return {@link String}
   */
  String getColumnLength();
}
